Anti-tamper techniques are widely needed to protect software against tampering events. These techniques can protect valuable intellectual property resident in the code and can also satisfy the Department of Defense Anti-Tamper requirements. The Department of Defense is interested in protecting critical information associated with software applications or weapon systems from exploitation by foreign adversaries. In the commercial world, there are major incentives to develop methods for protecting software applications and other digital media from piracy. Without protection, computer software code is susceptible to attack from malicious users.
There are techniques currently available to prevent tampering or reverse engineering of computer software code. Reverse engineering typically utilizes debugger or other software analysis tools. Prevention of the use of these tools is paramount in deterring unauthorized access. These techniques are generally associated with software protection that utilizes passive schemes, such as encryption or obfuscation. These passive techniques do not prevent the use of malicious tools. Furthermore, these passive techniques can oftentimes be overcome through lengthy, time-consuming processes that can break through the encryption or obfuscation and gain access to the computer software code.
Accordingly, there is a need for anti-tamper techniques that can prevent the use of tools that can facilitate unauthorized access of computer software code.